Install
npm install zpromise
特性
示例
const zPromise = require('zpromise');
async function () {
let promise = new zPromise()
setTimeout(() => {
if (error) {
promise.reject(error)
} else {
promise.resolve(data)
}
}, 1000);
await promise.catch(error => {
console.error(error)
})
}
超时
const timerPromise = require('zpromise/timer');
async function run(params) {
let promise = new timerPromise(3000)
console.log(promise.state)
await promise.catch(error => {
console.error(error)
})
console.log(promise.state)
}
run()
重置
const restartPromise = require('zpromise/restart');
async function run(params) {
let p1 = new restartPromise(3000 , error => {
console.warn('等待超时')
})
await p1.catch(error => {
console.error(error)
})
let p2 = p1.restart()
p2.then(data => {
console.error(data)
}).catch(error => {
console.error(error)
})
setTimeout(() => {
p2.reject()
}, 1000);
}
run()
API
zPromise()
Promise简化包装,提供resolve、reject绑定和状态查询
zPromise.prototype.state
Promise实例状态,包含pending、resolve、reject三种状态
zPromise.prototype.resolve(data)
对应Promise注入函数中的resolve()
zPromise.prototype.reject(error)
对应Promise注入函数中的reject()
timerPromise(delay, catchFunc)
在zPromise基础上增加了定时器功能,在等待超时后自动调用预设的reject()或resolve(),原型属性与zPromise一致。
restartPromise.prototype.restart()
重置Promise,将原来的Promise改为resolve状态,并使用之前的配置项创建新的Promise实例